35#include "yaml-schema-cpp/yaml_server.hpp"
55#define WOLF_MAP_CREATE(MapClass) \
56 static MapBasePtr create(const YAML::Node& _input_node, const std::vector<std::string>& _folders_schema = {}) \
59 if (not _folders_schema.empty()) \
61 auto server = yaml_schema_cpp::YamlServer(_folders_schema); \
62 server.setYaml(_input_node); \
63 if (not server.applySchema(#MapClass)) \
65 WOLF_ERROR(server.getLog()); \
68 map = std::shared_ptr<MapClass>(new MapClass(server.getNode())); \
71 map = std::shared_ptr<MapClass>(new MapClass(_input_node)); \
72 if (_input_node["landmarks"]) \
74 for (unsigned int i = 0; i < _input_node["landmarks"].size(); i++) \
76 LandmarkBasePtr lmk_ptr = \
77 FactoryLandmark::create(_input_node["landmarks"][i]["type"].as<std::string>(), \
78 _input_node["landmarks"][i], \
85 static MapBasePtr create(const std::string& _yaml_filepath, const std::vector<std::string>& _folders_schema) \
87 auto server = yaml_schema_cpp::YamlServer(_folders_schema, _yaml_filepath); \
88 if (not server.applySchema(#MapClass)) \
90 WOLF_ERROR(server.getLog()); \
93 return create(server.getNode(), {}); \
102 LandmarkBasePtrList landmark_list_;
106 MapBase(
const YAML::Node& _params);
107 MapBase(
const std::string& _type,
const YAML::Node& _params);
116 virtual LandmarkBasePtr
addLandmark(LandmarkBasePtr _landmark_ptr);
122 LandmarkBaseConstPtr
getLandmark(
const unsigned int& _id)
const;
123 LandmarkBasePtr
getLandmark(
const unsigned int& _id);
125 virtual void load(std::string _map_file_yaml);
126 virtual bool save(std::string _map_file_yaml,
const std::string& _map_name =
"")
const;
132 std::ostream& stream,
133 std::string _tabs =
"")
const;
134 virtual void print(
int depth,
138 std::ostream& stream = std::cout,
139 std::string _tabs =
"")
const;
141 virtual CheckLog localCheck(
bool _verbose, std::ostream& _stream, std::string _tabs =
"")
const;
142 virtual bool check(
CheckLog& _log,
bool _verbose, std::ostream& _stream, std::string _tabs =
"")
const;
147 LandmarkBaseConstPtrList list_const;
148 for (
auto&& obj_ptr : landmark_list_) list_const.push_back(obj_ptr);
154 return landmark_list_;
Definition: check_log.h:28
Definition: landmark_base.h:92
Definition: map_base.h:98
virtual bool check(CheckLog &_log, bool _verbose, std::ostream &_stream, std::string _tabs="") const
Definition: map_base.cpp:167
~MapBase() override=default
MapBase()
Definition: map_base.cpp:29
virtual void print(int depth, bool factored_by, bool metric, bool state_blocks, std::ostream &stream=std::cout, std::string _tabs="") const
Definition: map_base.cpp:139
virtual bool save(std::string _map_file_yaml, const std::string &_map_name="") const
Definition: map_base.cpp:91
virtual CheckLog localCheck(bool _verbose, std::ostream &_stream, std::string _tabs="") const
Definition: map_base.cpp:152
virtual void printHeader(int depth, bool factored_by, bool metric, bool state_blocks, std::ostream &stream, std::string _tabs="") const
Definition: map_base.cpp:128
LandmarkBaseConstPtr getLandmark(const unsigned int &_id) const
Definition: map_base.cpp:51
LandmarkBaseConstPtrList getLandmarkList() const
Definition: map_base.h:145
virtual LandmarkBasePtr addLandmark(LandmarkBasePtr _landmark_ptr)
Definition: map_base.cpp:40
virtual void removeLandmark(LandmarkBasePtr _landmark_ptr)
Definition: map_base.cpp:46
bool hasChildren() const override
Definition: map_base.cpp:35
virtual void load(std::string _map_file_yaml)
Definition: map_base.cpp:69
Base class for Nodes.
Definition: node_base.h:74
Definition: capture_base.h:23